Battle = {}
---@param name string
---@param super string
function Battle.CreateClass(name,super)
    local cls = Class(name,super)
    return cls
end

require("Battle/Common/IDGenerator")
require("Battle/Common/EntityFactory")
require("Battle/Common/EffectFactory")
require("Battle/Common/Card")

require("Battle/Enum/AttributeType")
require("Battle/Buffer/Enum/BuffSignType")
require("Battle/Buffer/Enum/BuffEffectType")

require("Battle/FighterStateEnum")

require("Battle/Entity/Actor")
require("Battle/Entity/Entity")
require("Battle/BattleBase")
require("Battle/BattleState")
require("Battle/CBattle")
require("Battle/BattleMsgHandler")
require("Battle/VirtualServer")

require("Battle/Event/BattleEvent")
require("Battle/Event/EventArgs")


require("Battle/State/StateBase")
require("Battle/State/IdleState")
require("Battle/State/RunState")
require("Battle/State/FailedState")
require("Battle/State/AttackState")
require("Battle/State/WinState")
require("Battle/State/HitState")
require("Battle/State/StunState")

require("Battle/Mgr/ActorManager")
require("Battle/Mgr/KeyMgr")
require("Battle/Mgr/SceneMgr")
require("Battle/Mgr/PoolMgr")
require("Battle/Mgr/EffectShowMgr")
require("Battle/Mgr/ReportMgr")
require("Battle/Mgr/BufferMgr")
require("Battle/Mgr/EventManager")
require("Battle/Mgr/BattleUtil")
require("Battle/Mgr/BattleGlobalMgr")
require("Battle/Mgr/GlobalEventSystem")
require("Battle/Mgr/GrassMgr")
require("Battle/Mgr/GlobalBuffSystem")



require("Battle/Component/BaseComponent")
require("Battle/Component/EntityComponent")
require("Battle/Component/SkillComponent")

require("Battle/Entity/Component/SkillSystem")
require("Battle/Entity/Component/ActionStateSystem")
require("Battle/Entity/Component/EntityEventSystem")
require("Battle/Entity/Component/EntityAttributeSystem")
require("Battle/Entity/Component/EntityDamageSystem")
require("Battle/Entity/Component/EntityGameObjectSystem")
require("Battle/Entity/Component/EntityAiSystem")
require("Battle/Entity/Component/EntityEffectStateSystem")
require("Battle/Entity/Component/EntityRoadArrowSystem")
require("Battle/Entity/Component/SkillReadyEffComponent")
require("Battle/Entity/Component/EntityHitSystem")
require("Battle/Entity/Component/EntitySignSystem")


require("Battle/Player/PlayerRobot")
require("Battle/Player/BluePlayer")
require("Battle/Player/RedPlayer")
require("Battle/Player/PlayerSystem")

require("Battle/Range/IRangeSelector")
require("Battle/Range/RectangleSelector")
require("Battle/Range/SectorSelector")


require("Battle/Ai/AiBase")
require("Battle/Ai/Custom/CommonAi")
require("Battle/Ai/Custom/LordAi")
require("Battle/Ai/Custom/EnemyLordAi")


require("Battle/Skill/Data/SkillData")
require("Battle/Skill/SkillBase")
require("Battle/Skill/Skill")
require("Battle/Skill/Component/SkillEventComponent")
require("Battle/Skill/Component/SkillBufferComponent")
require("Battle/Skill/Component/SkillRangeTipComponent")
require("Battle/Skill/Component/SkillReleaseEmitter")
require("Battle/Skill/Component/SkillChargeComponent")

require("Battle/Skill/SkillScript/SkillScriptBase")



require("Battle/Bullet/Bullet")
require("Battle/Bullet/BulletSystem")

require("Battle/Effect/EffectBase")
require("Battle/Effect/BulletEffect")
require("Battle/Effect/RayEffect")
require("Battle/Effect/BuffShowEffect")
require("Battle/Effect/ChainEffect")
require("Battle/Effect/ChainEffectGroup")
require("Battle/Effect/AToBRandomPathEffect")


require("Battle/Buffer/BuffEffect/BuffEffectBase")
require("Battle/Buffer/BuffBase")
require("Battle/Buffer/Buffer")
require("Battle/Buffer/Data/EffectConditionData")
require("Battle/Buffer/Enum/EffectConditionType")

require("Battle/Buffer/Condition/IBuffCondition")
require("Battle/Buffer/Condition/BuffHPLowCondition")
require("Battle/Buffer/Condition/BuffLimitCountCondition")
require("Battle/Buffer/Condition/BuffProbabilityCondition")
require("Battle/Buffer/Condition/BuffTimeIntervalCondition")
require("Battle/Buffer/Condition/BuffHeroEnergyCondition")
require("Battle/Buffer/Condition/BuffTargetHideCondition")
require("Battle/Buffer/Condition/BuffCarryMarkCondition")


require("Battle/Ai/AiTree")
require("Battle/Ai/AiBlackboard")

require("Battle/Ai/Base/AiBehavior")
require("Battle/Ai/Base/AiComposite")
require("Battle/Ai/Base/AiLeaf")
require("Battle/Ai/Base/AiDecorator")
require("Battle/Ai/Base/AiCondition")

require("Battle/Ai/Composite/AiSelector")
require("Battle/Ai/Composite/AiSequence")

require("Battle/Ai/Action/AiWaitAction")
require("Battle/Ai/Action/AiDoSkillAction")
require("Battle/Ai/Action/AiTriggerSetAction")
require("Battle/Ai/Action/AiPathFindingAction")
require("Battle/Ai/Action/AiSetSearchTargetAction")
require("Battle/Ai/Action/AiRemoveEffectState")
require("Battle/Ai/Action/AiAddEffectState")
require("Battle/Ai/Action/AiEnterHitAction")
require("Battle/Ai/Action/AiEnterStunAction")


require("Battle/Ai/Condition/AiTriggerCondition")
require("Battle/Ai/Condition/AiHasTargetCondition")
require("Battle/Ai/Condition/AiInSkillRangeCondition")
require("Battle/Ai/Condition/AiCanMoveCondition")
require("Battle/Ai/Condition/AiCanUseSkill")
require("Battle/Ai/Condition/AiCanPathFindingCondition")

require("Battle/Ai/Decorator/AiRepeater")

require("Battle/Ai/AiConfig")
require("Battle/BattleConfig") --config请保持在最后require




